package com.copd.service;

import com.copd.dto.PatientCreateRequest;
import com.copd.dto.PatientUpdateRequest;
import com.copd.entity.Patient;
import java.util.List;
import java.util.Map;

public interface PatientService {
    Patient getPatientById(int id);

    void createPatient(String name);
    
    List<Patient> getAllPatients(
        String name,
        String hospitalizationNumber,
        String department,
        String gender,
        Integer userId,
        int page,
        int size
    );
    
    long getTotalPatients(
        String name,
        String hospitalizationNumber,
        String department,
        String gender,
        Integer userId
    );

    Integer createPatient(PatientCreateRequest request);

    /**
     * 删除患者信息
     * @param patientId 患者ID
     * @return 是否删除成功
     */
    boolean deletePatient(Integer patientId);

    /**
     * 获取患者详细信息
     * @param patientId 患者ID
     * @return 包含患者基本信息和相关记录的Map
     */
    Map<String, Object> getPatientDetail(int patientId);

    /**
     * 更新患者信息
     * @param request 更新请求
     * @return 是否更新成功
     */
    boolean updatePatient(PatientUpdateRequest request);
}